package br.unp.tasi.loja.repositorios;

import br.unp.tasi.loja.entidades.Produto;
import java.util.List;

public interface RepositorioProduto extends RepositorioBasico {

  /**
   * Retorna a lista de todos os produtos
   * @return
   */
  public List<Produto> localizarOfertas();

  /**
   * Localiza a instancia do produto pelo ID
   * @param id
   * @return
   */
  public Produto localizarPeloID(final Long id);

  /**
   * Apaga a instancia do produto pelo ID
   * @param id
   */
  public void apagarPeloID(final Long id);

  /**
   * Localizar produtos pelo filtro e categoria
   * @param filtro
   * @param categoria
   * @return
   */
  public List<Produto> localizarProdutosPor(String filtro, Long categoria);

  /**
   * Localizar ofertas por categoria
   * @param categoria
   * @return
   */
  public List<Produto> localizarOfertasPorCategoria(Long categoria);

  public List<Produto> localizarTodos();

  public Long tamanho();
}
